1. Technical Field
This invention relates to a network of integrated processors and storage media, and fabric zoning in the network. More specifically, the invention relates to efficiently modifying one or more zone entities in the network.
2. Description of the Prior Art
A Storage Area Network (SAN) is a network whose primary purpose is the transfer of data between computer systems and storage elements and among storage elements. In one embodiment, a SAN is used for system interconnection in clusters. A SAN consists of a communication infrastructure, which provides physical connections, and a management layer, which organizes the connections, storage elements, and computer systems so that data transfer is secure and robust. The term SAN is usually (but not necessarily) identified with block I/O services rather than file access services. One or more inter-connectivity devices, such as high speed data switches, interconnect the various data storage systems to each other and to one or more servers that require access to the data in the data storage systems. As servers access the data, the data switches channel the data access requests to the appropriate data storage systems within the storage network. Each data switch includes one or more ports dedicated to transferring data to and/or from a data storage system or server.
A zone of resources within a storage network or another form of distributed computer network is an association, relation, or grouping of resources that are arranged according to function and/or location. Zones provide a mechanism to increase network security and prevent data loss or corruption by controlling access between devices or user groups. Resources within the same zone can access each other, while resources in different zones cannot access each other. For example, in one embodiment zoning is a method of subdividing a SAN into subsets of nodes, i.e. zones, on the network where SAN nodes outside of a zone are invisible to nodes within the zone. Zones are generally used to create the following: barriers between devices that use different operating system, logical subsets of closed user groups, groups of devices that are separate from devices in the rest of a fabric, or temporary access between devices for specific purposes. A server in the network, also known as the fabric zone server, may be used to create a zone by specifying zone members. Zero or more zones may be collected into a zoneset, and a zone may be a member of more than one zoneset. A zoneset creates a collection of zones that may be activated or deactivated as a single entity across all switches in the SAN fabric. However, only one zoneset may be active for a fabric at a particular point of time. An alias is a named collection of zone members, and the members of the alias may be part of other aliases. The zoneset can contain zero or more zones.
With respect to zoning, the data switch is generally responsible for zone enforcement. Ports that are members of a zone can communicate with each other but are isolated from ports in other zones. Devices, however, can belong to more than one zone. Using zoning, you can automatically or dynamically arrange connected devices into logical groups or zones across the physical fabric or network.
Zoning for a fabric consists of a zone definition and an active configuration. Active configuration enforces the zoning in a fabric. A zone definition is a collection of zone entities that have a hierarchical relationship amongst them, with a zone entity referring to a zone set, a zone, or an alias. The zone definition can consist of zero or more zonesets with each zoneset containing zero or more zones. Each zone can contain zero or more zone aliases and zero or more zone members. A zone alias can contain zero or more zone members. An alias is a named collection of zone members. Both the zone and the zone alias contain zero or more members, but there are difference between the zone and zone alias. For example, an alias does not exist in the active copy of an active zone set. Its members are imploded and represented as direct descendents of the zone containing alias. In addition, the zone definition can contain zero or more zones that do not belong to any zonesets and zero or more zone aliases that do not belong to any zone. An active configuration can contain an active zoneset or no active zonesets. The active zoneset can contain zero or more zones with each zone containing zero or more zone aliases and zero or more zone members and with each zone alias in a zone containing zero or more zone members. In an active configuration there cannot be a zone that does not belong to a zoneset or an alias that does not belong to a zone entity since there is one common ancestor in an active configuration which is the active zone set. There can be a zone set with same name in both the zone definition and active configuration and it can have the same or different contents. Sometimes those copies are referred to as active and inactive copies of the zoneset. A zone member has to always belong to either a zone entity or zone alias and cannot exist as a standalone entity.
Hereinafter, the terms zone, zoneset and zone alias will be referred to as a zone entity. A zoneset in an active configuration can be created, deleted or modified. In addition a zoneset can be activated and deactivated. Activation propagates a zoneset to the active configuration. Conversely, deactivation removes the zoneset from the active configuration.
A modification of a zone entity could mean addition to a zone entity or entities, and removal from a zone entity or entities. Removal from a zone entity is different from deleting a zone entity. Removal from a zone entity involves removing that entity from been part of the specified zone entity. The zone entity can still be part of other zone entities or not a part of any zone entity. Deletion of a zone entity means its removal from zone definition and/or active zone configuration and the zone entity no longer exists in zone definition and/or active zone configuration.
When making changes to zone entities in a fabric there are two approaches. The first approach is to delete the entire zone entity and recreate it with the desired definition. This first approach is known in the art as a non-incremental approach. The second approach is to modify the zone entity by adding or removing one or more zone entities to and/or from a zone entity to reflect the new definition. This second approach is known in the art as an incremental approach. Depending on the size of a zone entity and the number of changes to be made to the zone entity, one approach may be more efficient that the other approach. Selection of an approach that is not optimal, may lead to inefficient performance.
Accordingly, there is a need for a tool that dynamically selects an optimal modification approach, i.e. incremental or non-incremental, that should be used to modify each zone entity. The tool should select an optimal approach depending on the current constitution of the zone entity and the extent to which the zone entity needs to be modified.